大家好,又见面了,我是你们的朋友全栈君。
其实学习 Java 学到什么程度算是精通,这个其实没有盖棺定论的,也不是说你拿个年薪几十万的 offer 就可以自诩精通了。另外,每当面试的时候简历上填个精通 offer 的家伙我就觉得很搞笑,没有几个熬得过开出门左拐的命运。但是我认为,如果市面上这些资料、书籍你都啃的差不多,你能在所有的 Java 程序员中跻身前 0.1% 的话,你就可以达到”精通” 这个阶段了,因为没人比你强了,你当然是精通了。
所以,我还是选择罗列一些知识点推荐给大家,如果你都能够掌握并且真正理解这些东西的话,那你就可以到了精通这个阶段了。
首先要学的是计算机基础知识,因为 Java 不是像 Python 那样简单,它是需要一定基础的,如果你上来直接硬肝 Java,那么 90% 的几率你会放弃。
因为要想学好 Java ,你就得理解什么是面向对象的设计思想,而面向对象的这种设计思想又不是刚开始学习编程的新人能够熟练掌握呢?那怎么办呢?这不是死局了吗?
其实,如果要想真正理解这种设计思想的话,你要首先学的不是 Java,而是 C 语言。
为什么呢?因为 C 语言是面向过程的,什么是面向过程和面向对象的设计思想呢?我给你举个例子你就知道了。
面向过程与面向对象的区别,由“如何把大象装进冰箱”来看:
一、面向过程
为了把大象装进冰箱,需要3个过程。
思路:
1、把冰箱门打开(得到打开门的冰箱)。
2、把大象装进去(打开门后,得到里面装着大象的冰箱)。
3、把冰箱门关上(打开门、装好大象后,获得关好门的冰箱)。
根据上面的思路,可以看到,每个过程都有一个阶段性的目标,依次完成这些过程,就能把大象装进冰箱。
二、面向对象
为了把大象装进冰箱,需要做三个动作(或者叫行为)。每个动作有一个执行者,它就是对象。
思路:
1、冰箱,你给我把门打开。
2、冰箱,你给我把大象装进去(或者说,大象,你给我钻到冰箱里去)。
3、冰箱,你给我把门关上。
依次完成这些动作,你就可以把大象装进去。
这里我只是举个例子,可能大家还是很懵逼,这里我就要给你推荐几本入门 C 语言的视频和书籍了。
关于书籍推荐,可以看看这篇回答
初学C语言,有什么好书推荐?
书一般是能够静下心来的人看的,一般初学者最大的问题就是很难静下心来编程,如果你觉得难以看得下去书的话,你可以看看这篇回答,里面的视频可以说很全了
有哪些优秀的c语言课程视频?
初学 C 语言周期大概是3 – 6 个月,学编程的捷径就是每天敲代码,比如 C primer plus 上面就有很多代码示例,你要对着敲,课后练习要跟着做,坚持 3 – 6 个月,你会感谢你自己的坚持。
学到这里,你就可以说 C 语言基本入门了。
如果 C 语言你能够坚持下来的话,那么 Java 入门,那会非常容易了,其原因有两点
C 语言基本上可以说是高级语言的鼻祖,如果你 C 学得好,那么学其他语言都会非常容易。C 语言比 Java 稍微难点,而且有很多特性非常像,从一门比较难的语言 -> 一门难度中等的语言,那会变得很容易。好了,那么从现在开始,我们就要进入 Java 的学习环节了。
学习 Java,我将会从三个阶段来介绍,分为初级、中级和高级
Java 基础什么是初级 Java 的水平呢?我认为就是理解 Java 的语法规则、语言特性,这么说有点干瘪,直接上思维导图!
就这一张图,如果你能把图中内容都理解的差不多,那你就可以说是入门 Java 了,但是这里要注意一个概念,这并不等于说你是一个合格的初级 Java 程序员了,因为要想达到初级 Java 程序员的水平,你要会能干活,能干活的标准是你要懂框架,不要急,我们后面会说。
有人问图中为什么没有并发或者 Java 虚拟机这些,这些属于中高级内容,刚开始学 Java 不用懂什么并发和 JVM!!!有一些人或者培训班都喜欢秀自己懂 xxx ,懂 xxx ,这不就是误导小白么。
那么话又说回来了,如何才能学习并了解到上面这些内容呢?接下来重点来了!!!
如果你能看到这里,我就认为你养成了每日编程的习惯,此时的你能够静下心来编程了。
那么我首先给你推荐一本初学 Java 非常合适的一本书
Head First Java《Head First Java》是本完整的面向对象(object-oriented,OO)程序设计和Java的学习指导。此书是根据学习理论所设计的,让你可以从学习程序语言的基础开始一直到包括线程、网络与分布式程序等项目。最重要的,你会学会如何像个面向对象开发者一样去思考。
书中涉及的 Swing 图形化接口和 GUI 这部分可以不用学习,或者作为简单了解,因为现在几乎很少有人 拿 Swing 开发桌面化程序。
这本书可以说是非常适合小白的一本了,零基础就可以看,Head First 系列的书籍一般都是语言诙谐幽默,读起来不累,而且书中有非常多锻炼思维的游戏/方法,对于有经验的人来说,看这本书感觉非常弱智,但是对于零基础或者 Java 新手来说,这是一本非常适合系统学习 Java 和查漏补缺的一本书。
Java 核心技术卷一有人把 Java 核心技术卷一作为入门书籍推荐,其实我觉得并不友好,虽然这也是一门基础书籍,但是对不同的人来说,这本书的接收程度不同,我推荐看完上面的 Head First Java 再看这本。
Java 编程思想Java 编程思想就是一本神书了,不管你是初、中还是高级程序员,你每次看这本书的时候都会有新的收获
这本书同样不适合刚开始入门 Java 的同学看,甚至前三章并不友好,因为 Java 编程思想只是讲面向对象过程的设计思想就用了很大篇幅,这本书包含很多示例代码,我强烈推荐你要学习里面的代码思想,到工作中,这些编码思想和代码规范会非常有用!!!
所以综上所述,入门 Java 你需要掌握的基础知识有
Java 基本介绍Java 有哪些特点什么是 Java 开发环境Java 开发环境配置(初学者建议 Eclipse)这里就需要区分不同的电脑类型了,一种是 Mac ,一种是 Windows,很少有直接拿 Linux 进行开发的,所以我们这里不探讨 Linux 的方式
Mac 上的相关配置可以看这篇
Windows 上的相关配置可以看这篇
编写入门 Java 程序这里你需要使用集成开发工具,一种是 Eclipse 、一种是 IDE,初学者建议使用 Eclipse,因为 IDE 对新手并不友好。
Eclipse下载与安装
Java 入门程序编写
好了,如果你能按照上面的步骤一步步走下来,那么恭喜你,你能够成功编写一个 Java 入门程序了。
现在,你就可以进入到 Java 相关知识点的学习了。
了解面向对象的设计思想首先,你需要先认识到什么是面向对象的设计思想。
这里我推荐你看一下 《Java编程思想》 的第一章和二章
知乎的这个回答也能帮助你理解 什么是面向对象编程思想?
Java 基础语法(Java标识符、Java 修饰符、Java 变量、关键字、Java 注释)关于 Java 变量,可以参考这篇文章
Java 中的变量有很多,很容易让初学者不知所措,这里我写了一篇 Java 变量解惑的